From edc9a08b7c57340b96ffbf63901efb21e6512c77 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 17 Oct 2016 20:20:05 +0200 Subject: [PATCH] stack: Use gdk_window_new_child() --- gtk/gtkstack.c | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/gtk/gtkstack.c b/gtk/gtkstack.c index 44fbe2068b..bed1fe67cd 100644 --- a/gtk/gtkstack.c +++ b/gtk/gtkstack.c @@ -335,44 +335,36 @@ gtk_stack_realize (GtkWidget *widget) GtkStack *stack = GTK_STACK (widget); GtkStackPrivate *priv = gtk_stack_get_instance_private (stack); GtkAllocation allocation; - GdkWindowAttr attributes = { 0 }; - GdkWindowAttributesType attributes_mask; GtkStackChildInfo *info; GList *l; + gint event_mask; gtk_widget_set_realized (widget, TRUE); gtk_widget_set_window (widget, g_object_ref (gtk_widget_get_parent_window (widget))); gtk_css_gadget_get_content_allocation (priv->gadget, &allocation, NULL); - attributes.x = allocation.x; - attributes.y = allocation.y; - attributes.width = allocation.width; - attributes.height = allocation.height; - attributes.window_type = GDK_WINDOW_CHILD; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.event_mask = - gtk_widget_get_events (widget); - attributes_mask = (GDK_WA_X | GDK_WA_Y); - priv->view_window = - gdk_window_new (gtk_widget_get_window (GTK_WIDGET (stack)), - &attributes, attributes_mask); + gdk_window_new_child (gtk_widget_get_window (GTK_WIDGET (stack)), + gtk_widget_get_events (widget), + &allocation); gtk_widget_register_window (widget, priv->view_window); - attributes.x = get_bin_window_x (stack, &allocation); - attributes.y = get_bin_window_y (stack, &allocation); - attributes.width = allocation.width; - attributes.height = allocation.height; - + event_mask = gtk_widget_get_events (widget); for (l = priv->children; l != NULL; l = l->next) { info = l->data; - attributes.event_mask |= gtk_widget_get_events (info->widget); + event_mask |= gtk_widget_get_events (info->widget); } priv->bin_window = - gdk_window_new (priv->view_window, &attributes, attributes_mask); + gdk_window_new_child (priv->view_window, + event_mask, + &(GdkRectangle) { + get_bin_window_x (stack, &allocation), + get_bin_window_y (stack, &allocation), + allocation.width, + allocation.height}); gtk_widget_register_window (widget, priv->bin_window); for (l = priv->children; l != NULL; l = l->next) -- 2.30.2